<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>商品详情</title>
    <!-- jquery -->
    <script type="text/javascript" src="/js/jquery.min.js"></script>
    <!-- bootstrap -->
    <link rel="stylesheet" type="text/css" href="/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/bootstrap/js/bootstrap.min.js">
</script>
    <!-- layer -->
    <script type="text/javascript" src="/layer/layer.js"></script>
    <!-- common.js -->
    <script type="text/javascript" src="/js/common.js"></script>
</head>
<body>
<div class="panel panel-default">
    <div class="panel-heading">秒杀商品详情</div>
    <div class="panel-body">
        <span id="userTip"> 您还没有登录，请登陆后再操作<br/></span>
        <span>没有收货地址的提示。。。</span>
    </div>
    <table class="table" id="goods">
        <tr>
            <td>商品名称</td>
            <td colspan="3" id="goodsName"></td>
        </tr>
        <tr>
            <td>商品图片</td>
            <td colspan="3"><img id="goodsImg" width="200" height="200"/></td>
        </tr>
        <tr>
            <td>秒杀开始时间</td>
            <td id="startTime"></td>
            <td>
                <input type="hidden" id="remainSeconds"/>
                <!--<span th:if="${secKillStatus eq 0}">秒杀倒计时：<span id="countDown" th:text="${remainSeconds}"></span>秒</span>-->
                <!--<span th:if="${secKillStatus eq 1}">秒杀进行中</span>-->
                <!--<span th:if="${secKillStatus eq 2}">秒杀已结束</span>-->
                <span id="secKillTip"></span>
            </td>

            <td>
                <!--<form id="seckillForm" method="post" action="/seckill/doSeckill">-->
                <!--    <button class="btn btn-primary btn-block" type="submit" id="buyButton">立即秒杀</button>-->
                <!--    <input type="hidden" name="goodsId" id="goosId"/>-->
                <!--</form>-->
                <div class="row">
                    <div class="form-inline">
                        <!--验证码图片-->
                        <img id="captchaImg" width="130" height="32" onclick="refreshCaptcha()" style="display: none"/>

                        <!--验证码输入框-->
                        <input id="captcha" class="form-control" style="display: none">

                        <!--秒杀按钮-->
                        <button class="btn btn-primary" type="button" id="buyButton" onclick="getSeckillPath()">立即秒杀
                            <input type="hidden" name="goodsId" id="goodsId">
                        </button>
                    </div>
                </div>
            </td>

        </tr>
        <tr>
            <td>商品原价</td>
            <td colspan="3" id="goodsPrice"></td>
        </tr>
        <tr>
            <td>秒杀价</td>
            <td colspan="3" id="seckillPrice"></td>
        </tr>
        <tr>
            <td>库存数量</td>
            <td colspan="3" id="stockCount"></td>
        </tr>
    </table>
</div>
</body>
<script>
    $(function(){
        // countDown();
        getDetails();

    });

    // 刷新验证码
    function refreshCaptcha(){
        // 访问接口 获取 验证码图片流（后面加的参数用于校验，不用于生成）
        $("#captchaImg").attr("src", "/seckill/captcha?goodsId="+$("#goodsId").val()+"&time="+new Date());
    }

    // 获取生成的秒杀地址
    function getSeckillPath(){
        // 获取id为goodsId的隐藏输入框的值
        var goodsId = $("#goodsId").val();
        var captcha = $("#captcha").val();
        g_showLoading();
        $.ajax({
            url:"/seckill/path",
            type:"GET",
            data:{
                goodsId:goodsId,
                captcha:captcha
            },
            success:function (data){
                if(data.code==200){
                    var path = data.obj;
                    doSeckill(path);
                }
                else{
                    layer.msg(data.message);
                }
            },
            error:function (){
                layer.msg("客户端路径请求错误");
            }
        })
    }

    // 根据秒杀结果进行秒杀
    function doSeckill(path){
        $.ajax({
            url : '/seckill/'+path+'/doSeckill',
            type : 'POST',
            data : {
                goodsId:$("#goodsId").val()
            },
            // data是ajax请求体返回的数据
            success:function(data){
                if(data.code == 200){
                    // window.location.href = "/orderDetail.htm?orderId=" + data.obj.id;
                    getResult($("#goodsId").val());
                }
                else{
                    layer.msg(data.message);
                }
            },
            error:function(){
                layer.msg("客户端2请求错误");
            }
        })
    }

    // 获取秒杀结果（轮询）
    function getResult(goodsId){
        g_showLoading();
        $.ajax({
            url:"/seckill/result",
            type:"GET",
            data: {
                goodsId:goodsId,
            },
            success:function (data) {
                if(data.code == 200){
                    var result = data.obj;
                    // 秒杀失败
                    if(result<0){
                        layer.msg("对不起！秒杀失败！");
                    }
                    // 排队中（轮询）
                    else if(result==0){
                        setTimeout(function (){
                            getResult(goodsId);
                        },50)
                    }
                    // 秒杀成功
                    else{
                        layer.msg("恭喜你！秒杀成功！查看订单？", {btn:["确定","取消"]},
                            function () {
                                window.location.href = "/orderDetail.htm?orderId=" + result;
                            },
                            function () {
                                layer.close();
                            }
                        )
                    }
                }
            },
            error:function (data) {
                layer.msg("客户端请求错误！")
            }
        })

    }

    function getDetails(){
        var goodsId = g_getQueryString("goodsId");
        $.ajax({
            url : '/goods/detail/'+goodsId,
            type : "GET",
            success:function (data){
                if(data.code == 200){
                    // 为HTML页面的个别element赋值
                    render(data.obj);
                }
                else{
                    layer.msg("客户端1请求出错");
                }
            },
            error:function (){
                    layer.msg("客户端2请求出错");
            }
        });
    }
    // 为HTML页面的个别element赋值
    function render(detail){
        var user = detail.user;
        var goods = detail.goodsVo;
        var remainSeconds = detail.remainSeconds;
        if(user){
            $("#userTip").hide();
        }
        $("#goodsTime").text(goods.goodsName);
        $("#goodsImg").attr("src",goods.goodsImg);
        $("#startTime").text(new Date(goods.startDate).format("yyyy-MM-dd HH:mm:ss"));
        $("#remainSeconds").val(remainSeconds);
        $("#goodsId").val(goods.id);
        $("#goodsPrice").text(goods.goodsPrice);
        $("#seckillPrice").text(goods.seckillPrice);
        $("#stockCount").text(goods.stockCount);
        countDown();
    }

    function countDown(){
        var remainSeconds = $("#remainSeconds").val();
        var timeout;
        // 秒杀还没开始，倒计时
        if(remainSeconds > 0){
            $("#buyButton").attr("disabled", true);
            $("#secKillTip").html("秒杀倒计时:" + remainSeconds + "秒");

            // 倒计时自动刷新实现（使用回调函数）
            timeout = setTimeout(function(){
                // $("#countDown").text(remainSeconds - 1);
                $("#remainSeconds").val(remainSeconds - 1);
                countDown();
            },1000);
        }
        // 秒杀进行中
        else if(remainSeconds == 0){
            $("#buyButton").attr("disabled", false);
            if(timeout){
                clearTimeout(timeout);
            }
            $("#secKillTip").html("秒杀进行中");
            $("#captchaImg").attr("src", "/seckill/captcha?goodsId="+$("#goodsId").val()+"&time="+new Date());

            // 秒杀开始后自动展示验证码
            $("#captchaImg").show();
            $("#captcha").show();
        }
        // 秒杀已经结束
        else{
            $("#buyButton").attr("disabled", true);
            $("#secKillTip").html("秒杀已经结束");

            // 秒杀结束后自动关闭验证码
            $("#captchaImg").hide();
            $("#captcha").hide();
        }
    }
</script>
</html>